-
-
Notifications
You must be signed in to change notification settings - Fork 539
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize BeEquivalentTo
#1939
Optimize BeEquivalentTo
#1939
Conversation
@@ -64,12 +65,13 @@ private void RunStepsUntilEquivalencyIsProven(Comparands comparands, IEquivalenc | |||
{ | |||
using var _ = context.Tracer.WriteBlock(node => node.Description); | |||
|
|||
Func<IEquivalencyStep, GetTraceMessage> getMessage = step => _ => $"Equivalency was proven by {step.GetType().Name}"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In develop the lambda is constructed in each iteration no matter if we enter the if
or not.
See the difference on
sharplab
Pull Request Test Coverage Report for Build 2405223709Warning: This coverage report may be inaccurate.We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
💛 - Coveralls |
|
||
public string PathAndName => Path.Combine(Name); | ||
public string PathAndName => pathAndName ??= Path.Combine(Name); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this really that expensive?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Expensiveness might be a relative term, as it has to compared against code maintainability.
The raw numbers in terms of performance are listed in the last benchmark.
The operation of concatenating strings (of course) depends on the length of the member name and how far down the member path we are.
The benchmarks performed have quite short type and member names, so a more realistic example with more descriptive/longer names would benefit even more from this.
Many of the calls to PathAndName
are avoided in 8eeb20c as ObjectInfo.ctor
calls PathAndName
and also by using Path
and Name
separately in Node.Equals
and Node.GetHashCode
.
The remaining calls to PathAndName
comes from
Node.Depth
Node.IsRoot
EquivalencyValidationContext.IsCyclicReference
Property.ctor
For this example below the caching of PathAndName
reduces the number of allocating calls to PathName
from 90 to 20.
var subject = new MyClass[]
{
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
};
var expected = = new MyClass[]
{
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
new () { Value = 1, Inner = new () { Value = 2 } },
};
subject.Should().BeEquivalentTo(expected);
#if NET47 || NETSTANDARD2_0 | ||
type => Add(type, referenceTypes, valueTypes, compareRecordsByValue, getDefaultEqualityStrategy) | ||
#else | ||
static (Type type, (List<Type> referenceTypes, List<Type> valueTypes, bool compareRecordsByValue, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea was to use GetOrAdd<TArg> (TKey key, Func<TKey, TArg, TValue> valueFactory, TArg factoryArgument)
and pass in the state as the factoryArgument
to avoid creating a capturing lambda expression.
I did some more benchmarks on BeEquivalentToWithDeeplyNestedStructures
and it showed a measurable negative effect on the runtime.
As the code is more complex and the memory savings are only moderate, I've reverted that commit.
develop
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 32.98 us | 0.623 us | 0.692 us | 5.9204 | 0.1221 | 36 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 51.94 us | 0.378 us | 0.354 us | 6.4087 | 0.1221 | 39 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 41.43 us | 0.686 us | 0.642 us | 7.5684 | 0.1831 | 46 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 62.86 us | 0.205 us | 0.191 us | 8.1787 | 0.1221 | 51 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 77.23 us | 0.749 us | 0.701 us | 14.2822 | 0.4883 | 88 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 110.89 us | 0.493 us | 0.461 us | 15.5029 | 0.4883 | 96 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 204.92 us | 1.006 us | 0.941 us | 38.5742 | 1.4648 | 237 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 281.62 us | 3.471 us | 3.247 us | 41.9922 | 1.4648 | 258 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 291.63 us | 1.432 us | 1.340 us | 54.6875 | 1.9531 | 337 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 396.12 us | 6.709 us | 5.602 us | 59.5703 | 1.9531 | 368 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 629.06 us | 3.224 us | 3.016 us | 122.0703 | 6.8359 | 748 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 884.21 us | 11.413 us | 10.676 us | 132.8125 | 7.8125 | 818 KB |
373a6ad - Lazily construct the equivalency options summary
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 31.98 us | 0.206 us | 0.193 us | 5.5542 | 0.1221 | 34 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 49.69 us | 0.961 us | 0.852 us | 6.0425 | 0.1221 | 37 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 41.15 us | 0.427 us | 0.400 us | 7.2021 | 0.1831 | 44 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 62.28 us | 0.495 us | 0.463 us | 7.8125 | 0.1221 | 48 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 75.42 us | 0.317 us | 0.296 us | 13.9160 | 0.4883 | 86 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 109.53 us | 0.823 us | 0.643 us | 15.1367 | 0.3662 | 94 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 202.09 us | 0.848 us | 0.752 us | 38.3301 | 1.2207 | 235 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 277.09 us | 2.755 us | 2.577 us | 41.5039 | 0.9766 | 256 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 287.58 us | 3.306 us | 3.092 us | 54.1992 | 1.9531 | 334 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 393.33 us | 3.889 us | 3.637 us | 59.0820 | 1.9531 | 365 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 653.00 us | 3.513 us | 2.934 us | 121.0938 | 6.8359 | 746 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 862.93 us | 9.103 us | 8.515 us | 131.8359 | 6.8359 | 816 KB |
6c5db11 - Avoid repeatedly constructing lambda
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 31.32 us | 0.404 us | 0.378 us | 5.1270 | 0.1221 | 32 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 50.09 us | 0.462 us | 0.409 us | 5.6152 | 0.1221 | 35 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 40.81 us | 0.412 us | 0.385 us | 6.6528 | 0.1831 | 41 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 60.81 us | 0.487 us | 0.407 us | 7.2632 | 0.1831 | 45 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 73.71 us | 0.394 us | 0.368 us | 12.6953 | 0.3662 | 78 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 108.38 us | 1.447 us | 1.354 us | 13.9160 | 0.3662 | 86 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 199.46 us | 0.758 us | 0.672 us | 34.9121 | 1.2207 | 214 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 277.28 us | 2.033 us | 1.901 us | 38.0859 | 0.9766 | 235 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 276.10 us | 2.801 us | 2.339 us | 49.3164 | 1.9531 | 303 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 395.81 us | 3.764 us | 3.521 us | 54.1992 | 1.9531 | 334 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 627.73 us | 5.543 us | 4.914 us | 109.3750 | 5.8594 | 675 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 858.80 us | 10.349 us | 9.680 us | 121.0938 | 6.8359 | 744 KB |
Avoid capture in GetEqualityStrategy
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 31.75 us | 0.179 us | 0.168 us | 5.0049 | 0.1221 | 31 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 49.64 us | 0.746 us | 0.698 us | 5.6152 | 0.1221 | 35 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 41.73 us | 0.385 us | 0.360 us | 6.4697 | 0.1221 | 40 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 60.87 us | 0.661 us | 0.586 us | 7.2021 | 0.1221 | 45 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 75.15 us | 0.192 us | 0.171 us | 12.3291 | 0.3662 | 76 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 109.04 us | 1.774 us | 1.385 us | 13.9160 | 0.3662 | 86 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 202.90 us | 1.279 us | 1.197 us | 33.9355 | 1.2207 | 208 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 284.56 us | 2.712 us | 2.537 us | 38.0859 | 0.9766 | 235 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 292.26 us | 1.784 us | 1.581 us | 47.8516 | 1.9531 | 295 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 399.16 us | 4.039 us | 3.778 us | 54.1992 | 1.9531 | 334 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 643.02 us | 2.192 us | 1.943 us | 106.4453 | 5.8594 | 657 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 878.81 us | 8.633 us | 8.075 us | 121.0938 | 6.8359 | 744 KB |
981570b - Avoid allocations in BecauseOf
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 30.45 us | 0.243 us | 0.227 us | 4.7607 | 0.0610 | 29 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 49.10 us | 0.930 us | 0.824 us | 5.3711 | 0.1221 | 33 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 39.17 us | 0.352 us | 0.329 us | 6.1035 | 0.1221 | 38 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 60.24 us | 0.823 us | 0.729 us | 6.9580 | 0.1221 | 43 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 72.41 us | 0.417 us | 0.390 us | 11.5967 | 0.3662 | 71 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 107.78 us | 0.234 us | 0.195 us | 13.1836 | 0.3662 | 81 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 192.19 us | 1.045 us | 0.926 us | 31.7383 | 0.9766 | 195 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 280.39 us | 2.284 us | 2.136 us | 35.6445 | 0.9766 | 221 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 277.87 us | 1.155 us | 1.081 us | 44.4336 | 1.4648 | 274 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 390.35 us | 3.603 us | 3.370 us | 50.7813 | 1.4648 | 313 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 604.42 us | 6.993 us | 6.199 us | 98.6328 | 5.8594 | 608 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 858.32 us | 6.407 us | 5.993 us | 112.3047 | 5.8594 | 696 KB |
8da904f - Avoid allocations in ConversionSelector
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 29.98 us | 0.214 us | 0.200 us | 4.5776 | 0.0610 | 28 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 47.50 us | 0.629 us | 0.558 us | 5.1880 | 0.0610 | 32 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 39.67 us | 0.315 us | 0.295 us | 5.8594 | 0.1221 | 36 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 58.46 us | 0.445 us | 0.394 us | 6.6528 | 0.1221 | 41 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 70.57 us | 0.320 us | 0.300 us | 10.9863 | 0.3662 | 68 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 104.00 us | 0.939 us | 0.832 us | 12.5732 | 0.3662 | 78 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 187.72 us | 0.860 us | 0.805 us | 30.2734 | 0.9766 | 185 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 265.62 us | 2.762 us | 2.584 us | 34.1797 | 0.9766 | 212 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 264.87 us | 1.372 us | 1.283 us | 42.4805 | 1.4648 | 262 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 379.77 us | 4.020 us | 3.563 us | 48.8281 | 1.4648 | 300 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 579.72 us | 1.538 us | 1.438 us | 93.7500 | 4.8828 | 579 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 834.86 us | 10.682 us | 9.469 us | 108.3984 | 5.8594 | 666 KB |
370c674 - Avoid/cache string allocations
Method | Runtime | N | Depth | Mean | Error | StdDev | Gen 0 | Gen 1 | Allocated |
---|---|---|---|---|---|---|---|---|---|
BeEquivalentTo | .NET 6.0 | 1 | 1 | 28.93 us | 0.293 us | 0.274 us | 4.3945 | 0.0610 | 27 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 1 | 46.16 us | 0.377 us | 0.353 us | 4.9438 | 0.0610 | 31 KB |
BeEquivalentTo | .NET 6.0 | 1 | 2 | 37.23 us | 0.341 us | 0.319 us | 5.4932 | 0.1221 | 34 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 2 | 56.37 us | 0.399 us | 0.354 us | 6.2256 | 0.1221 | 39 KB |
BeEquivalentTo | .NET 6.0 | 1 | 6 | 69.50 us | 0.335 us | 0.313 us | 9.8877 | 0.2441 | 61 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 1 | 6 | 97.00 us | 1.051 us | 0.878 us | 11.3525 | 0.2441 | 70 KB |
BeEquivalentTo | .NET 6.0 | 10 | 1 | 176.22 us | 1.161 us | 1.086 us | 28.0762 | 0.9766 | 172 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 1 | 252.86 us | 1.836 us | 1.718 us | 31.7383 | 0.9766 | 196 KB |
BeEquivalentTo | .NET 6.0 | 10 | 2 | 254.10 us | 1.439 us | 1.346 us | 38.5742 | 1.4648 | 239 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 2 | 350.46 us | 3.729 us | 3.306 us | 44.4336 | 1.4648 | 274 KB |
BeEquivalentTo | .NET 6.0 | 10 | 6 | 548.07 us | 2.091 us | 1.956 us | 82.0313 | 4.8828 | 507 KB |
BeEquivalentTo | .NET Framework 4.7.2 | 10 | 6 | 759.56 us | 11.574 us | 9.036 us | 94.7266 | 4.8828 | 586 KB |
b1936ab
to
d7b6629
Compare
d7b6629
to
a741e66
Compare
@@ -109,14 +130,17 @@ public override bool Equals(object obj) | |||
return Equals((Node)obj); | |||
} | |||
|
|||
private bool Equals(Node other) => Type == other.Type && PathAndName == other.PathAndName; | |||
private bool Equals(Node other) => (Type, Name, Path) == (other.Type, other.Name, other.Path); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change from two to three branches is the cause of the remaining decrease in branch coverage.
Nice work! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [FluentAssertions](https://www.fluentassertions.com/) ([source](https://togithub.com/fluentassertions/fluentassertions)) | nuget | minor | `6.7.0` -> `6.8.0` | --- ### Release Notes <details> <summary>fluentassertions/fluentassertions</summary> ### [`v6.8.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.8.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0) <!-- Release notes generated using configuration in .github/release.yml at develop --> ##### What's Changed ##### New features - Extend collection assertions with `ContainInConsecutiveOrder` and `NotContainInConsecutiveOrder` by [@​StacyCash](https://togithub.com/StacyCash) in [fluentassertions/fluentassertions#1963 - Added `NotCompleteWithinAsync` for Task assertions by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#1967 - Added assertions for non-generic `TaskCompletionSource` by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#1961 - Exposes the `IMonitor` object to extensions methods. by [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) in [fluentassertions/fluentassertions#2010 ##### Improvements - Optimize `BeEquivalentTo` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1939 - Print commas at the end of the line by [@​ronaldkroon](https://togithub.com/ronaldkroon) in [fluentassertions/fluentassertions#1945 - Avoid allocating sub-arrays in `ContainInOrder` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1960 - Extend `IObjectInfo` with info about `DeclaringType` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1950 - Prepare constructors of `AsyncFunctionAssertions` to make them protected in V7 by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#1972 - Calculate the difference between the subject and the expected nearby time by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2013 ##### Fixes - Filter dynamic methods from stack trace by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1943 - Make For/Excluding work with nested paths by [@​whymatter](https://togithub.com/whymatter) in [fluentassertions/fluentassertions#1953 - Use InvariantCulture when doing case-insensitive matches by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1985 - Global record equivalency settings were not taken into account by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1984 - Escape brackets in execution time failures by [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) in [fluentassertions/fluentassertions#1994 ##### Documentation - More specifically clarify the intentions of `WithArgs` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1929 - Remove building link from the website by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#1934 - Add `Enum.BeOneOf` to the docs by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1958 - Document how to use `ModuleInitializer` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1966 - Fix a typo on the Assembly References documentation page by [@​asydikov](https://togithub.com/asydikov) in [fluentassertions/fluentassertions#1970 - Update summary of `EquivalencyValidator` by [@​Wolgo](https://togithub.com/Wolgo) in [fluentassertions/fluentassertions#1991 - Improve error messages for accidental `Equals` usage by [@​nycdotnet](https://togithub.com/nycdotnet) in [fluentassertions/fluentassertions#2006 ##### Others - Upgrade to C# 10 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1935 - Use file scoped namespaces by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1936 - More use of pattern matching and lifted operators by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1937 - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1962 - Make it possible for third-party libraries to access the underlying collection of instances of `ReadOnlyNonGenericCollectionWrapper` by [@​logiclrd](https://togithub.com/logiclrd) in [fluentassertions/fluentassertions#1968 - Code cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1973 - Improve coverage for `CollectionMemberObjectInfo` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1983 - Deduplicate target frameworks by [@​0xced](https://togithub.com/0xced) in [fluentassertions/fluentassertions#1980 - Removed netcoreapp2.0 framework check in formatting precision tests by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [fluentassertions/fluentassertions#1976 - Rename `ShouldCompareMembersThisDeep` to `ShouldCompareNodesThisDeep` by [@​Wolgo](https://togithub.com/Wolgo) in [fluentassertions/fluentassertions#1992 - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1996 - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1998 - Update GitHub actions by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2007 - Fix the PR link in releases.md by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2014 - Prepare 6.8.0 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2020 ##### New Contributors - [@​StacyCash](https://togithub.com/StacyCash) made their first contribution in [fluentassertions/fluentassertions#1963 - [@​asydikov](https://togithub.com/asydikov) made their first contribution in [fluentassertions/fluentassertions#1970 - [@​0xced](https://togithub.com/0xced) made their first contribution in [fluentassertions/fluentassertions#1980 - [@​Wolgo](https://togithub.com/Wolgo) made their first contribution in [fluentassertions/fluentassertions#1991 - [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) made their first contribution in [fluentassertions/fluentassertions#1994 - [@​nycdotnet](https://togithub.com/nycdotnet) made their first contribution in [fluentassertions/fluentassertions#2006 - [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) made their first contribution in [fluentassertions/fluentassertions#2010 **Full Changelog**: fluentassertions/fluentassertions@6.7.0...6.8.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 10pm every weekday,every weekend,before 5am every weekday" in timezone Europe/Berlin, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/orso-co/Orso.Arpa.Api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yNDEuOSIsInVwZGF0ZWRJblZlciI6IjMyLjI0MS45In0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [FluentAssertions](https://www.fluentassertions.com/) ([source](https://togithub.com/fluentassertions/fluentassertions)) | nuget | minor | `6.7.0` -> `6.10.0` | --- ### Release Notes <details> <summary>fluentassertions/fluentassertions</summary> ### [`v6.10.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.10.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### Fixes - Declare `System.Net.Http` as a framework dependency by [@​AArnott](https://togithub.com/AArnott) in [fluentassertions/fluentassertions#2122 - Improves how `BeEquivalentTo` handles fields hiding base-class fields by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1990 - Fix timeout check in `WithResult` extension by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#2101 - Avoid exceptions when wrapping in `AssertionScope` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2103 ##### Others - Fix copyright year by [@​ITaluone](https://togithub.com/ITaluone) in [fluentassertions/fluentassertions#2099 - Fix broken link in releases.md by [@​ITaluone](https://togithub.com/ITaluone) in [fluentassertions/fluentassertions#2096 - Check if `lcov.info` does exist by [@​ITaluone](https://togithub.com/ITaluone) in [fluentassertions/fluentassertions#2097 - Clean up `Build.cs` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2093 - Updated editor configs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#2104 - Revert early returns for project consistency by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2105 - Update data.md to fix typo by [@​berserck](https://togithub.com/berserck) in [fluentassertions/fluentassertions#2114 - Add unit tests for better coverage in Execution namespace by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#2042 - Add code coverage to XUnit2.Specs by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2115 - Regrouping and formatting of the selection rule specs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#2106 - Add fancy `ReportSummary` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2116 - Add new issue template for a general feature by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2113 - Add missing tests for `int.Seconds(TimeSpan)` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2119 - Add test summaries by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2118 - Declare few more files as `DocumentationChanges` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2100 - Remove unused InstallPfx.bat by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2124 #### New Contributors - [@​berserck](https://togithub.com/berserck) made their first contribution in [fluentassertions/fluentassertions#2114 - [@​AArnott](https://togithub.com/AArnott) made their first contribution in [fluentassertions/fluentassertions#2122 **Full Changelog**: fluentassertions/fluentassertions@6.9.0...6.10.0 ### [`v6.9.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.9.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### New features - Added `BeOneOf` for `IComparable`s and object comparisons. by [@​jez9999](https://togithub.com/jez9999) in [fluentassertions/fluentassertions#2028 - Add `BeCloseTo()` / `NotBeCloseTo()` to TimeOnlyAssertions by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2030 - Add `ThatAre[Not]Abstract`, `ThatAre[Not]Static` and `ThatAre[Not]Virtual` to `PropertyInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2054 - Add `ThatAre[Not]Abstract` to `MethodInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2060 - Add `ThatAre[Not]Abstract` to `TypeSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2058 - Add `ThatAre[Not]Sealed` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2059 - Add `ThatAre[Not]Interfaces` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2057 - Add extensions for `OccurrenceConstraint` that reads more fluently by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2047 - Add `Imply()` to `BooleanAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2074 - Add `ThatAre[Not]ValueTypes` method to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2083 ##### Improvements - Order strings with ordinal comparison by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2075 - Improve performance of `IsTuple()` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2079 - Optimize `IsRecord()` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2080 ##### Fixes - Nested `AssertionScope`s do not print inner scope reportables by [@​94sedighi](https://togithub.com/94sedighi) in [fluentassertions/fluentassertions#2044 - Extend `ThatArePublicOrInternal` to also look at the setter of properties by [@​Ruijin92](https://togithub.com/Ruijin92) in [fluentassertions/fluentassertions#2082 - Treat record structs as records by [@​salvois](https://togithub.com/salvois) in [fluentassertions/fluentassertions#2009 ##### Documentation - Document alternatives for collection order by [@​nycdotnet](https://togithub.com/nycdotnet) in [fluentassertions/fluentassertions#2063 - Document that `PathMap` is currently not supported by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2067 - Use langword instead of <c> for C# keywords by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2070 - Add missing exceptions to xml summaries by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2023 - Improve `Guard` helper by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2076 - Add issue templates and api review process by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2078 - Add `cSpell` to NUKE build pipeline by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2086 ##### Others - Enable CI unit tests on linux and mac by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2021 - update catch phrase url by [@​danielchalmers](https://togithub.com/danielchalmers) in [fluentassertions/fluentassertions#2025 - Prepare approval tests for .NET 7 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2024 - Use PolySharp to generate polyfill attributes by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2026 - New unit test to verify CompleteWithinAsync behaves correctly in an assertion scope by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#2033 - Fix nuget config to be able to restore/build the project when having custom HTTP nuget sources by [@​ITaluone](https://togithub.com/ITaluone) in [fluentassertions/fluentassertions#2032 - Improve coverage on data assertions by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#2037 - Bump minimum SDK to 6.0.400 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2038 - Let `EquatableOfInt` implement `IComparable<T>` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2036 - New tests for better code coverage on collection assertions by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#2035 - Comparable type assertions referential equality by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2046 - Use TheoryData by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2068 - Pattern combinators by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2039 - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2077 - Set process dotnet cli language to en-US by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2084 - Bump required .NET SDK to v7 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2087 - Optimize NUKE spell check by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2089 - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2081 - Fix build breaking on non PR branches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2090 - Add process env variable `DOTNET_CLI_UI_LANGUAGE` also inside targets by [@​ITaluone](https://togithub.com/ITaluone) in [fluentassertions/fluentassertions#2092 ##### New Contributors - [@​danielchalmers](https://togithub.com/danielchalmers) made their first contribution in [fluentassertions/fluentassertions#2025 - [@​jez9999](https://togithub.com/jez9999) made their first contribution in [fluentassertions/fluentassertions#2028 - [@​94sedighi](https://togithub.com/94sedighi) made their first contribution in [fluentassertions/fluentassertions#2054 - [@​Ruijin92](https://togithub.com/Ruijin92) made their first contribution in [fluentassertions/fluentassertions#2082 - [@​salvois](https://togithub.com/salvois) made their first contribution in [fluentassertions/fluentassertions#2009 **Full Changelog**: fluentassertions/fluentassertions@6.8.0...6.9.0 ### [`v6.8.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.8.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0) <!-- Release notes generated using configuration in .github/release.yml at develop --> #### What's Changed ##### New features - Extend collection assertions with `ContainInConsecutiveOrder` and `NotContainInConsecutiveOrder` by [@​StacyCash](https://togithub.com/StacyCash) in [fluentassertions/fluentassertions#1963 - Added `NotCompleteWithinAsync` for Task assertions by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#1967 - Added assertions for non-generic `TaskCompletionSource` by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#1961 - Exposes the `IMonitor` object to extensions methods. by [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) in [fluentassertions/fluentassertions#2010 ##### Improvements - Optimize `BeEquivalentTo` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1939 - Print commas at the end of the line by [@​ronaldkroon](https://togithub.com/ronaldkroon) in [fluentassertions/fluentassertions#1945 - Avoid allocating sub-arrays in `ContainInOrder` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1960 - Extend `IObjectInfo` with info about `DeclaringType` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1950 - Prepare constructors of `AsyncFunctionAssertions` to make them protected in V7 by [@​lg2de](https://togithub.com/lg2de) in [fluentassertions/fluentassertions#1972 - Calculate the difference between the subject and the expected nearby time by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2013 ##### Fixes - Filter dynamic methods from stack trace by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1943 - Make For/Excluding work with nested paths by [@​whymatter](https://togithub.com/whymatter) in [fluentassertions/fluentassertions#1953 - Use InvariantCulture when doing case-insensitive matches by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1985 - Global record equivalency settings were not taken into account by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1984 - Escape brackets in execution time failures by [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) in [fluentassertions/fluentassertions#1994 ##### Documentation - More specifically clarify the intentions of `WithArgs` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1929 - Remove building link from the website by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#1934 - Add `Enum.BeOneOf` to the docs by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1958 - Document how to use `ModuleInitializer` by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1966 - Fix a typo on the Assembly References documentation page by [@​asydikov](https://togithub.com/asydikov) in [fluentassertions/fluentassertions#1970 - Update summary of `EquivalencyValidator` by [@​Wolgo](https://togithub.com/Wolgo) in [fluentassertions/fluentassertions#1991 - Improve error messages for accidental `Equals` usage by [@​nycdotnet](https://togithub.com/nycdotnet) in [fluentassertions/fluentassertions#2006 ##### Others - Upgrade to C# 10 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1935 - Use file scoped namespaces by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1936 - More use of pattern matching and lifted operators by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1937 - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1962 - Make it possible for third-party libraries to access the underlying collection of instances of `ReadOnlyNonGenericCollectionWrapper` by [@​logiclrd](https://togithub.com/logiclrd) in [fluentassertions/fluentassertions#1968 - Code cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1973 - Improve coverage for `CollectionMemberObjectInfo` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [fluentassertions/fluentassertions#1983 - Deduplicate target frameworks by [@​0xced](https://togithub.com/0xced) in [fluentassertions/fluentassertions#1980 - Removed netcoreapp2.0 framework check in formatting precision tests by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [fluentassertions/fluentassertions#1976 - Rename `ShouldCompareMembersThisDeep` to `ShouldCompareNodesThisDeep` by [@​Wolgo](https://togithub.com/Wolgo) in [fluentassertions/fluentassertions#1992 - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1996 - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#1998 - Update GitHub actions by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2007 - Fix the PR link in releases.md by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [fluentassertions/fluentassertions#2014 - Prepare 6.8.0 by [@​jnyrup](https://togithub.com/jnyrup) in [fluentassertions/fluentassertions#2020 #### New Contributors - [@​StacyCash](https://togithub.com/StacyCash) made their first contribution in [fluentassertions/fluentassertions#1963 - [@​asydikov](https://togithub.com/asydikov) made their first contribution in [fluentassertions/fluentassertions#1970 - [@​0xced](https://togithub.com/0xced) made their first contribution in [fluentassertions/fluentassertions#1980 - [@​Wolgo](https://togithub.com/Wolgo) made their first contribution in [fluentassertions/fluentassertions#1991 - [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) made their first contribution in [fluentassertions/fluentassertions#1994 - [@​nycdotnet](https://togithub.com/nycdotnet) made their first contribution in [fluentassertions/fluentassertions#2006 - [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) made their first contribution in [fluentassertions/fluentassertions#2010 **Full Changelog**: fluentassertions/fluentassertions@6.7.0...6.8.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/Testably/Testably.Abstractions). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEzMC4xIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [FluentAssertions](https://www.fluentassertions.com/) ([source](https://togithub.com/fluentassertions/fluentassertions)) | nuget | major | `5.10.3` -> `6.10.0` | --- ### Release Notes <details> <summary>fluentassertions/fluentassertions</summary> ### [`v6.10.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.10.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### Fixes - Declare `System.Net.Http` as a framework dependency by [@​AArnott](https://togithub.com/AArnott) in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) - Improves how `BeEquivalentTo` handles fields hiding base-class fields by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1990](https://togithub.com/fluentassertions/fluentassertions/pull/1990) - Fix timeout check in `WithResult` extension by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2101](https://togithub.com/fluentassertions/fluentassertions/pull/2101) - Avoid exceptions when wrapping in `AssertionScope` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2103](https://togithub.com/fluentassertions/fluentassertions/pull/2103) ##### Others - Fix copyright year by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2099](https://togithub.com/fluentassertions/fluentassertions/pull/2099) - Fix broken link in releases.md by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2096](https://togithub.com/fluentassertions/fluentassertions/pull/2096) - Check if `lcov.info` does exist by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2097](https://togithub.com/fluentassertions/fluentassertions/pull/2097) - Clean up `Build.cs` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2093](https://togithub.com/fluentassertions/fluentassertions/pull/2093) - Updated editor configs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2104](https://togithub.com/fluentassertions/fluentassertions/pull/2104) - Revert early returns for project consistency by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2105](https://togithub.com/fluentassertions/fluentassertions/pull/2105) - Update data.md to fix typo by [@​berserck](https://togithub.com/berserck) in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - Add unit tests for better coverage in Execution namespace by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2042](https://togithub.com/fluentassertions/fluentassertions/pull/2042) - Add code coverage to XUnit2.Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2115](https://togithub.com/fluentassertions/fluentassertions/pull/2115) - Regrouping and formatting of the selection rule specs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2106](https://togithub.com/fluentassertions/fluentassertions/pull/2106) - Add fancy `ReportSummary` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2116](https://togithub.com/fluentassertions/fluentassertions/pull/2116) - Add new issue template for a general feature by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2113](https://togithub.com/fluentassertions/fluentassertions/pull/2113) - Add missing tests for `int.Seconds(TimeSpan)` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2119](https://togithub.com/fluentassertions/fluentassertions/pull/2119) - Add test summaries by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2118](https://togithub.com/fluentassertions/fluentassertions/pull/2118) - Declare few more files as `DocumentationChanges` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2100](https://togithub.com/fluentassertions/fluentassertions/pull/2100) - Remove unused InstallPfx.bat by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2124](https://togithub.com/fluentassertions/fluentassertions/pull/2124) ##### New Contributors - [@​berserck](https://togithub.com/berserck) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - [@​AArnott](https://togithub.com/AArnott) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0 ### [`v6.9.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.9.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Added `BeOneOf` for `IComparable`s and object comparisons. by [@​jez9999](https://togithub.com/jez9999) in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - Add `BeCloseTo()` / `NotBeCloseTo()` to TimeOnlyAssertions by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2030](https://togithub.com/fluentassertions/fluentassertions/pull/2030) - Add `ThatAre[Not]Abstract`, `ThatAre[Not]Static` and `ThatAre[Not]Virtual` to `PropertyInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - Add `ThatAre[Not]Abstract` to `MethodInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2060](https://togithub.com/fluentassertions/fluentassertions/pull/2060) - Add `ThatAre[Not]Abstract` to `TypeSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2058](https://togithub.com/fluentassertions/fluentassertions/pull/2058) - Add `ThatAre[Not]Sealed` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2059](https://togithub.com/fluentassertions/fluentassertions/pull/2059) - Add `ThatAre[Not]Interfaces` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2057](https://togithub.com/fluentassertions/fluentassertions/pull/2057) - Add extensions for `OccurrenceConstraint` that reads more fluently by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2047](https://togithub.com/fluentassertions/fluentassertions/pull/2047) - Add `Imply()` to `BooleanAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2074](https://togithub.com/fluentassertions/fluentassertions/pull/2074) - Add `ThatAre[Not]ValueTypes` method to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2083](https://togithub.com/fluentassertions/fluentassertions/pull/2083) ##### Improvements - Order strings with ordinal comparison by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2075](https://togithub.com/fluentassertions/fluentassertions/pull/2075) - Improve performance of `IsTuple()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2079](https://togithub.com/fluentassertions/fluentassertions/pull/2079) - Optimize `IsRecord()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2080](https://togithub.com/fluentassertions/fluentassertions/pull/2080) ##### Fixes - Nested `AssertionScope`s do not print inner scope reportables by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2044](https://togithub.com/fluentassertions/fluentassertions/pull/2044) - Extend `ThatArePublicOrInternal` to also look at the setter of properties by [@​Ruijin92](https://togithub.com/Ruijin92) in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - Treat record structs as records by [@​salvois](https://togithub.com/salvois) in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) ##### Documentation - Document alternatives for collection order by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2063](https://togithub.com/fluentassertions/fluentassertions/pull/2063) - Document that `PathMap` is currently not supported by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2067](https://togithub.com/fluentassertions/fluentassertions/pull/2067) - Use langword instead of <c> for C# keywords by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2070](https://togithub.com/fluentassertions/fluentassertions/pull/2070) - Add missing exceptions to xml summaries by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2023](https://togithub.com/fluentassertions/fluentassertions/pull/2023) - Improve `Guard` helper by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2076](https://togithub.com/fluentassertions/fluentassertions/pull/2076) - Add issue templates and api review process by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2078](https://togithub.com/fluentassertions/fluentassertions/pull/2078) - Add `cSpell` to NUKE build pipeline by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2086](https://togithub.com/fluentassertions/fluentassertions/pull/2086) ##### Others - Enable CI unit tests on linux and mac by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2021](https://togithub.com/fluentassertions/fluentassertions/pull/2021) - update catch phrase url by [@​danielchalmers](https://togithub.com/danielchalmers) in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - Prepare approval tests for .NET 7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2024](https://togithub.com/fluentassertions/fluentassertions/pull/2024) - Use PolySharp to generate polyfill attributes by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2026](https://togithub.com/fluentassertions/fluentassertions/pull/2026) - New unit test to verify CompleteWithinAsync behaves correctly in an assertion scope by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2033](https://togithub.com/fluentassertions/fluentassertions/pull/2033) - Fix nuget config to be able to restore/build the project when having custom HTTP nuget sources by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2032](https://togithub.com/fluentassertions/fluentassertions/pull/2032) - Improve coverage on data assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2037](https://togithub.com/fluentassertions/fluentassertions/pull/2037) - Bump minimum SDK to 6.0.400 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2038](https://togithub.com/fluentassertions/fluentassertions/pull/2038) - Let `EquatableOfInt` implement `IComparable<T>` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2036](https://togithub.com/fluentassertions/fluentassertions/pull/2036) - New tests for better code coverage on collection assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2035](https://togithub.com/fluentassertions/fluentassertions/pull/2035) - Comparable type assertions referential equality by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2046](https://togithub.com/fluentassertions/fluentassertions/pull/2046) - Use TheoryData by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2068](https://togithub.com/fluentassertions/fluentassertions/pull/2068) - Pattern combinators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2039](https://togithub.com/fluentassertions/fluentassertions/pull/2039) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2077](https://togithub.com/fluentassertions/fluentassertions/pull/2077) - Set process dotnet cli language to en-US by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2084](https://togithub.com/fluentassertions/fluentassertions/pull/2084) - Bump required .NET SDK to v7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2087](https://togithub.com/fluentassertions/fluentassertions/pull/2087) - Optimize NUKE spell check by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2089](https://togithub.com/fluentassertions/fluentassertions/pull/2089) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2081](https://togithub.com/fluentassertions/fluentassertions/pull/2081) - Fix build breaking on non PR branches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2090](https://togithub.com/fluentassertions/fluentassertions/pull/2090) - Add process env variable `DOTNET_CLI_UI_LANGUAGE` also inside targets by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2092](https://togithub.com/fluentassertions/fluentassertions/pull/2092) #### New Contributors - [@​danielchalmers](https://togithub.com/danielchalmers) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - [@​jez9999](https://togithub.com/jez9999) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - [@​94sedighi](https://togithub.com/94sedighi) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - [@​Ruijin92](https://togithub.com/Ruijin92) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - [@​salvois](https://togithub.com/salvois) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0 ### [`v6.8.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.8.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0) <!-- Release notes generated using configuration in .github/release.yml at develop --> #### What's Changed ##### New features - Extend collection assertions with `ContainInConsecutiveOrder` and `NotContainInConsecutiveOrder` by [@​StacyCash](https://togithub.com/StacyCash) in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - Added `NotCompleteWithinAsync` for Task assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1967](https://togithub.com/fluentassertions/fluentassertions/pull/1967) - Added assertions for non-generic `TaskCompletionSource` by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1961](https://togithub.com/fluentassertions/fluentassertions/pull/1961) - Exposes the `IMonitor` object to extensions methods. by [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) ##### Improvements - Optimize `BeEquivalentTo` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1939](https://togithub.com/fluentassertions/fluentassertions/pull/1939) - Print commas at the end of the line by [@​ronaldkroon](https://togithub.com/ronaldkroon) in [https://github.com/fluentassertions/fluentassertions/pull/1945](https://togithub.com/fluentassertions/fluentassertions/pull/1945) - Avoid allocating sub-arrays in `ContainInOrder` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1960](https://togithub.com/fluentassertions/fluentassertions/pull/1960) - Extend `IObjectInfo` with info about `DeclaringType` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1950](https://togithub.com/fluentassertions/fluentassertions/pull/1950) - Prepare constructors of `AsyncFunctionAssertions` to make them protected in V7 by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1972](https://togithub.com/fluentassertions/fluentassertions/pull/1972) - Calculate the difference between the subject and the expected nearby time by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2013](https://togithub.com/fluentassertions/fluentassertions/pull/2013) ##### Fixes - Filter dynamic methods from stack trace by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1943](https://togithub.com/fluentassertions/fluentassertions/pull/1943) - Make For/Excluding work with nested paths by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1953](https://togithub.com/fluentassertions/fluentassertions/pull/1953) - Use InvariantCulture when doing case-insensitive matches by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1985](https://togithub.com/fluentassertions/fluentassertions/pull/1985) - Global record equivalency settings were not taken into account by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1984](https://togithub.com/fluentassertions/fluentassertions/pull/1984) - Escape brackets in execution time failures by [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) ##### Documentation - More specifically clarify the intentions of `WithArgs` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1929](https://togithub.com/fluentassertions/fluentassertions/pull/1929) - Remove building link from the website by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1934](https://togithub.com/fluentassertions/fluentassertions/pull/1934) - Add `Enum.BeOneOf` to the docs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1958](https://togithub.com/fluentassertions/fluentassertions/pull/1958) - Document how to use `ModuleInitializer` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1966](https://togithub.com/fluentassertions/fluentassertions/pull/1966) - Fix a typo on the Assembly References documentation page by [@​asydikov](https://togithub.com/asydikov) in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - Update summary of `EquivalencyValidator` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - Improve error messages for accidental `Equals` usage by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) ##### Others - Upgrade to C# 10 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1935](https://togithub.com/fluentassertions/fluentassertions/pull/1935) - Use file scoped namespaces by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1936](https://togithub.com/fluentassertions/fluentassertions/pull/1936) - More use of pattern matching and lifted operators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1937](https://togithub.com/fluentassertions/fluentassertions/pull/1937) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1962](https://togithub.com/fluentassertions/fluentassertions/pull/1962) - Make it possible for third-party libraries to access the underlying collection of instances of `ReadOnlyNonGenericCollectionWrapper` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1968](https://togithub.com/fluentassertions/fluentassertions/pull/1968) - Code cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1973](https://togithub.com/fluentassertions/fluentassertions/pull/1973) - Improve coverage for `CollectionMemberObjectInfo` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1983](https://togithub.com/fluentassertions/fluentassertions/pull/1983) - Deduplicate target frameworks by [@​0xced](https://togithub.com/0xced) in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - Removed netcoreapp2.0 framework check in formatting precision tests by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1976](https://togithub.com/fluentassertions/fluentassertions/pull/1976) - Rename `ShouldCompareMembersThisDeep` to `ShouldCompareNodesThisDeep` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1992](https://togithub.com/fluentassertions/fluentassertions/pull/1992) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1996](https://togithub.com/fluentassertions/fluentassertions/pull/1996) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1998](https://togithub.com/fluentassertions/fluentassertions/pull/1998) - Update GitHub actions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2007](https://togithub.com/fluentassertions/fluentassertions/pull/2007) - Fix the PR link in releases.md by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2014](https://togithub.com/fluentassertions/fluentassertions/pull/2014) - Prepare 6.8.0 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2020](https://togithub.com/fluentassertions/fluentassertions/pull/2020) #### New Contributors - [@​StacyCash](https://togithub.com/StacyCash) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - [@​asydikov](https://togithub.com/asydikov) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - [@​0xced](https://togithub.com/0xced) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - [@​Wolgo](https://togithub.com/Wolgo) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) - [@​nycdotnet](https://togithub.com/nycdotnet) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) - [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0 ### [`v6.7.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.7.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### New features - Add `BeDefined` and `NotBeDefined` to `EnumAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1888](https://togithub.com/fluentassertions/fluentassertions/pull/1888) - Restore basic assertions for collections in `System.Data` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1812](https://togithub.com/fluentassertions/fluentassertions/pull/1812) - Add the ability to exclude non-browsable members from equivalency tests by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1827](https://togithub.com/fluentassertions/fluentassertions/pull/1827) - Add `For`/`Exclude` to allow exclusion of members inside a collection by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - Add overload to `HaveElement()` to be able to assert on occurrences for `XDocument` and `XElement` by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1880](https://togithub.com/fluentassertions/fluentassertions/pull/1880) ##### Fixes - Do not add all arguments of type `T` to the matching events, if one is found by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1920](https://togithub.com/fluentassertions/fluentassertions/pull/1920) ##### Documentation - Update documentation for event monitoring at .netstandard2.0 by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1879](https://togithub.com/fluentassertions/fluentassertions/pull/1879) - Update docxml comments on `BeInRange` by [@​andrewlock](https://togithub.com/andrewlock) in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - Add ContainSingle.Where to collection examples by [@​timabell](https://togithub.com/timabell) in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) ##### Others - More code coverage by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - Code style fixes by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1881](https://togithub.com/fluentassertions/fluentassertions/pull/1881) - Add missing tests (according to coveralls) for Data\* objects by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1882](https://togithub.com/fluentassertions/fluentassertions/pull/1882) - Fix small typo in `AssertionScope` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1890](https://togithub.com/fluentassertions/fluentassertions/pull/1890) - Add missing tests for matching `null` with a wildcard by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1889](https://togithub.com/fluentassertions/fluentassertions/pull/1889) - More testing of guarding methods by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1891](https://togithub.com/fluentassertions/fluentassertions/pull/1891) - Fix release notes by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1892](https://togithub.com/fluentassertions/fluentassertions/pull/1892) - Structure assertions with nested classes instead of regions (Part 1) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1898](https://togithub.com/fluentassertions/fluentassertions/pull/1898) - Add missing `null` check tests in Data\*Specs by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1899](https://togithub.com/fluentassertions/fluentassertions/pull/1899) - Structure assertions with nested classes instead of regions (Part 2) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1900](https://togithub.com/fluentassertions/fluentassertions/pull/1900) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1901](https://togithub.com/fluentassertions/fluentassertions/pull/1901) - Cleanup README.md by [@​robvanuden](https://togithub.com/robvanuden) in [https://github.com/fluentassertions/fluentassertions/pull/1905](https://togithub.com/fluentassertions/fluentassertions/pull/1905) - Structure assertions with nested classes instead of regions (Part 3) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1903](https://togithub.com/fluentassertions/fluentassertions/pull/1903) - Try to stabilize UIFact tests by running them sequentially by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1902](https://togithub.com/fluentassertions/fluentassertions/pull/1902) - Structure assertions with nested classes instead of regions (Part 4) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1908](https://togithub.com/fluentassertions/fluentassertions/pull/1908) - Structure assertions with nested classes instead of regions (Part 5) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1909](https://togithub.com/fluentassertions/fluentassertions/pull/1909) - Fix coveralls badge by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1906](https://togithub.com/fluentassertions/fluentassertions/pull/1906) - Fix codestyle issues by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1912](https://togithub.com/fluentassertions/fluentassertions/pull/1912) - Structure assertions with nested classes instead of regions (Part 6) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1911](https://togithub.com/fluentassertions/fluentassertions/pull/1911) - Fix the failure message for occurrence regex by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1913](https://togithub.com/fluentassertions/fluentassertions/pull/1913) ##### New Contributors - [@​ITaluone](https://togithub.com/ITaluone) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - [@​whymatter](https://togithub.com/whymatter) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - [@​andrewlock](https://togithub.com/andrewlock) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - [@​timabell](https://togithub.com/timabell) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0 ### [`v6.6.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.6.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Adding support for .NET6 `DateOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1844](https://togithub.com/fluentassertions/fluentassertions/pull/1844) - Adding support for .NET6 `TimeOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1848](https://togithub.com/fluentassertions/fluentassertions/pull/1848) - Extend `NullableBooleanAssertions` by `NotBe()` by [@​mu88](https://togithub.com/mu88) in [https://github.com/fluentassertions/fluentassertions/pull/1865](https://togithub.com/fluentassertions/fluentassertions/pull/1865) - Added a new overload to `MatchRegex()` to assert on the number of regex matches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) ##### Improvements - Annotated `[Not]MatchRegex` with `[StringSyntax("Regex")]` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1816](https://togithub.com/fluentassertions/fluentassertions/pull/1816) - Determine caller name for `EnumAssertions.Be` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1835](https://togithub.com/fluentassertions/fluentassertions/pull/1835) - Add difference to numeric assertion failure messages by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1859](https://togithub.com/fluentassertions/fluentassertions/pull/1859) - Improve difference calculation of overflowing integrals by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1875](https://togithub.com/fluentassertions/fluentassertions/pull/1875) ##### Fixes - Ensure `ExcludingMissingMembers` doesn't undo usage of `WithMapping` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1838](https://togithub.com/fluentassertions/fluentassertions/pull/1838) - Better support for NaN in numeric assertions on floats and doubles by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1822](https://togithub.com/fluentassertions/fluentassertions/pull/1822) - `WithMapping` now works in equivalency assertions on collections by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1858](https://togithub.com/fluentassertions/fluentassertions/pull/1858) - Better handling of NaN in nullable numeric assertions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1867](https://togithub.com/fluentassertions/fluentassertions/pull/1867) ##### Documentation - Fix typo in comment for `ComparingRecordsByMembers` by [@​kijanawoodard](https://togithub.com/kijanawoodard) in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - Add release notes template by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1818](https://togithub.com/fluentassertions/fluentassertions/pull/1818) - Update migration tip on how to replace `AllItemsAreInstancesOfType` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1873](https://togithub.com/fluentassertions/fluentassertions/pull/1873) ##### Others - Add code coverage reporting by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1815](https://togithub.com/fluentassertions/fluentassertions/pull/1815) - Fix uninvoked actions in tests by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1817](https://togithub.com/fluentassertions/fluentassertions/pull/1817) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1819](https://togithub.com/fluentassertions/fluentassertions/pull/1819) - More Code Coverage by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1820](https://togithub.com/fluentassertions/fluentassertions/pull/1820) - Reordered the numeric tests and replaced regions with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1821](https://togithub.com/fluentassertions/fluentassertions/pull/1821) - Fill gaps in System.Data unit testing by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1814](https://togithub.com/fluentassertions/fluentassertions/pull/1814) - Add net6.0 target by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1831](https://togithub.com/fluentassertions/fluentassertions/pull/1831) - Target PRs at develop instead of master by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1836](https://togithub.com/fluentassertions/fluentassertions/pull/1836) - Adds test for string collection equivalency by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1843](https://togithub.com/fluentassertions/fluentassertions/pull/1843) - Replaced regions in numeric specs with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1837](https://togithub.com/fluentassertions/fluentassertions/pull/1837) - Rename constructor parameter for `NullableDateOnlyAssertions` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1846](https://togithub.com/fluentassertions/fluentassertions/pull/1846) - Improve code coverage of fake should overloads by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1847](https://togithub.com/fluentassertions/fluentassertions/pull/1847) - Improve code coverage and fix some test mutations by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1839](https://togithub.com/fluentassertions/fluentassertions/pull/1839) - Removes unnecessary code by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1849](https://togithub.com/fluentassertions/fluentassertions/pull/1849) - `A_NaN_is_never_in_range_of_two_doubles` was exercising `float`s by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1852](https://togithub.com/fluentassertions/fluentassertions/pull/1852) - Split `StringAssertionSpecs` file by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1855](https://togithub.com/fluentassertions/fluentassertions/pull/1855) - Update internal test and build nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1866](https://togithub.com/fluentassertions/fluentassertions/pull/1866) - Add test coverage for `OccurrenceConstraint` by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1856](https://togithub.com/fluentassertions/fluentassertions/pull/1856) - Fix Some Typos in UpgradingToV6.md by [@​say25](https://togithub.com/say25) in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - Cleanups in Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1853](https://togithub.com/fluentassertions/fluentassertions/pull/1853) #### New Contributors - [@​kijanawoodard](https://togithub.com/kijanawoodard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - [@​say25](https://togithub.com/say25) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - [@​IT-VBFK](https://togithub.com/IT-VBFK) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0 ### [`v6.5.1`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.1) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1) #### What's Changed - Maintenance on release notes, Github content files, etc by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1800](https://togithub.com/fluentassertions/fluentassertions/pull/1800) - Make the site work with Ruby 3 and update catchphrase and sponsors by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1801](https://togithub.com/fluentassertions/fluentassertions/pull/1801) - Fix ordering collections by the identity function by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1802](https://togithub.com/fluentassertions/fluentassertions/pull/1802) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1 Public release notes: https://fluentassertions.com/releases/[#​651](https://togithub.com/fluentassertions/fluentassertions/issues/651) ### [`v6.5.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0) #### What's Changed - Allow mapping properties and/or fields with different names by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1742](https://togithub.com/fluentassertions/fluentassertions/pull/1742) - Moved the equivalency specs to a separate test project and split them into separate classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1789](https://togithub.com/fluentassertions/fluentassertions/pull/1789) - Improved docs on `BeLowerCased` and `BeUpperCased` for mixed strings by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1792](https://togithub.com/fluentassertions/fluentassertions/pull/1792) - Fixed a continuation issue in the fluent assertion API by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1791](https://togithub.com/fluentassertions/fluentassertions/pull/1791) - Properly recognized non-class types as internal when using `HaveAccessModifier` assertion by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1793](https://togithub.com/fluentassertions/fluentassertions/pull/1793) - Caller identification does not handle all arguments using `new` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1794](https://togithub.com/fluentassertions/fluentassertions/pull/1794) - Added `AllSatisfy` by [@​kmusick](https://togithub.com/kmusick) in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) - Fix and improve tracing for nested `AssertionScope`s by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1797](https://togithub.com/fluentassertions/fluentassertions/pull/1797) #### New Contributors - [@​kmusick](https://togithub.com/kmusick) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0 ### [`v6.4.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.4.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0) #### What's Changed - Adds `ThatAreStatic` and `ThatAreNotStatic` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1740](https://togithub.com/fluentassertions/fluentassertions/pull/1740) - Trailing slash results in 404 page by [@​MEmanuelsson](https://togithub.com/MEmanuelsson) in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - Introduce assertions for `StatusCode` of `HttpResponseMessage` by [@​mu88](https://togithub.com/mu88) for [@​swisspost](https://togithub.com/swisspost) in [https://github.com/fluentassertions/fluentassertions/pull/1737](https://togithub.com/fluentassertions/fluentassertions/pull/1737) - `ContainItemsAssignableTo` now expects at least one item assignable to `T` by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - Variable name is not captured after await assertion by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1770](https://togithub.com/fluentassertions/fluentassertions/pull/1770) - Fix typos by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1774](https://togithub.com/fluentassertions/fluentassertions/pull/1774) - Non-generic overload for `WithInnerExceptionExactly` by [@​karenfarnes](https://togithub.com/karenfarnes) in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - Fix determining caller identity for NET Native by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1776](https://togithub.com/fluentassertions/fluentassertions/pull/1776) - Adjust Identifier properties by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1777](https://togithub.com/fluentassertions/fluentassertions/pull/1777) - Relax `When_the_execution_time_of_an_async_action_is_less_than_a_limit_it_should_not_throw` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1778](https://togithub.com/fluentassertions/fluentassertions/pull/1778) - Bump Nuke/GitVersion, improve PR numbering, simplify Yaml script by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1775](https://togithub.com/fluentassertions/fluentassertions/pull/1775) - `OccurredEvent` ordering on monitored object is now done via thread-safe counter by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1773](https://togithub.com/fluentassertions/fluentassertions/pull/1773) - override Identifier for `BufferedStream` by [@​amosonn](https://togithub.com/amosonn) in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) - Fix `TryGetValue` for dictionary like enumerables by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1786](https://togithub.com/fluentassertions/fluentassertions/pull/1786) - Optimize build times by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1787](https://togithub.com/fluentassertions/fluentassertions/pull/1787) - Guard against unformattable caller name by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1788](https://togithub.com/fluentassertions/fluentassertions/pull/1788) #### New Contributors - [@​MEmanuelsson](https://togithub.com/MEmanuelsson) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - [@​MullerWasHere](https://togithub.com/MullerWasHere) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - [@​karenfarnes](https://togithub.com/karenfarnes) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - [@​amosonn](https://togithub.com/amosonn) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0 **Public release notes**: https://fluentassertions.com/releases/[#​640](https://togithub.com/fluentassertions/fluentassertions/issues/640) ### [`v6.3.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.3.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0) #### What's Changed - Fix building on linux/WSL by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1723](https://togithub.com/fluentassertions/fluentassertions/pull/1723) - Test that `ComparingByMembers` clears `equalityStrategyCache` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1724](https://togithub.com/fluentassertions/fluentassertions/pull/1724) - Adding `ThatAreAsync()` and `ThatAreNotAsync()` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1725](https://togithub.com/fluentassertions/fluentassertions/pull/1725) - Return Task for async/non-async test method by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1736](https://togithub.com/fluentassertions/fluentassertions/pull/1736) - Fix contributing guidelines by [@​wgnf](https://togithub.com/wgnf) in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - Replace non-generic collection examples with generic collections in documentation by [@​jonathonchase](https://togithub.com/jonathonchase) in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - Adds ThatAre(Not)Virtual to MethodInfoSelector by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1744](https://togithub.com/fluentassertions/fluentassertions/pull/1744) - Prevent multiple enumeration in `ContainSingle()` by [@​bert2](https://togithub.com/bert2) in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - Change HaveCount assertion message order to state number before dumpi… by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) - Throw exception when calling object.Equals on Assertions class by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1764](https://togithub.com/fluentassertions/fluentassertions/pull/1764) - Take sync work into account in CompleteWithinAsync by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1762](https://togithub.com/fluentassertions/fluentassertions/pull/1762) #### New Contributors - [@​wgnf](https://togithub.com/wgnf) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - [@​jonathonchase](https://togithub.com/jonathonchase) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - [@​bert2](https://togithub.com/bert2) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - [@​iliashkolyar](https://togithub.com/iliashkolyar) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0 ### [`v6.2.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.2.0) [Compa </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cythral/brighid-commands). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuMzQuMSJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [FluentAssertions](https://www.fluentassertions.com/) ([source](https://togithub.com/fluentassertions/fluentassertions)) | nuget | major | `5.10.3` -> `6.10.0` | --- ### Release Notes <details> <summary>fluentassertions/fluentassertions</summary> ### [`v6.10.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.10.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### Fixes - Declare `System.Net.Http` as a framework dependency by [@​AArnott](https://togithub.com/AArnott) in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) - Improves how `BeEquivalentTo` handles fields hiding base-class fields by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1990](https://togithub.com/fluentassertions/fluentassertions/pull/1990) - Fix timeout check in `WithResult` extension by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2101](https://togithub.com/fluentassertions/fluentassertions/pull/2101) - Avoid exceptions when wrapping in `AssertionScope` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2103](https://togithub.com/fluentassertions/fluentassertions/pull/2103) ##### Others - Fix copyright year by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2099](https://togithub.com/fluentassertions/fluentassertions/pull/2099) - Fix broken link in releases.md by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2096](https://togithub.com/fluentassertions/fluentassertions/pull/2096) - Check if `lcov.info` does exist by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2097](https://togithub.com/fluentassertions/fluentassertions/pull/2097) - Clean up `Build.cs` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2093](https://togithub.com/fluentassertions/fluentassertions/pull/2093) - Updated editor configs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2104](https://togithub.com/fluentassertions/fluentassertions/pull/2104) - Revert early returns for project consistency by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2105](https://togithub.com/fluentassertions/fluentassertions/pull/2105) - Update data.md to fix typo by [@​berserck](https://togithub.com/berserck) in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - Add unit tests for better coverage in Execution namespace by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2042](https://togithub.com/fluentassertions/fluentassertions/pull/2042) - Add code coverage to XUnit2.Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2115](https://togithub.com/fluentassertions/fluentassertions/pull/2115) - Regrouping and formatting of the selection rule specs by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/2106](https://togithub.com/fluentassertions/fluentassertions/pull/2106) - Add fancy `ReportSummary` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2116](https://togithub.com/fluentassertions/fluentassertions/pull/2116) - Add new issue template for a general feature by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2113](https://togithub.com/fluentassertions/fluentassertions/pull/2113) - Add missing tests for `int.Seconds(TimeSpan)` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2119](https://togithub.com/fluentassertions/fluentassertions/pull/2119) - Add test summaries by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2118](https://togithub.com/fluentassertions/fluentassertions/pull/2118) - Declare few more files as `DocumentationChanges` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2100](https://togithub.com/fluentassertions/fluentassertions/pull/2100) - Remove unused InstallPfx.bat by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2124](https://togithub.com/fluentassertions/fluentassertions/pull/2124) ##### New Contributors - [@​berserck](https://togithub.com/berserck) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2114](https://togithub.com/fluentassertions/fluentassertions/pull/2114) - [@​AArnott](https://togithub.com/AArnott) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2122](https://togithub.com/fluentassertions/fluentassertions/pull/2122) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.9.0...6.10.0 ### [`v6.9.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.9.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Added `BeOneOf` for `IComparable`s and object comparisons. by [@​jez9999](https://togithub.com/jez9999) in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - Add `BeCloseTo()` / `NotBeCloseTo()` to TimeOnlyAssertions by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2030](https://togithub.com/fluentassertions/fluentassertions/pull/2030) - Add `ThatAre[Not]Abstract`, `ThatAre[Not]Static` and `ThatAre[Not]Virtual` to `PropertyInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - Add `ThatAre[Not]Abstract` to `MethodInfoSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2060](https://togithub.com/fluentassertions/fluentassertions/pull/2060) - Add `ThatAre[Not]Abstract` to `TypeSelector` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2058](https://togithub.com/fluentassertions/fluentassertions/pull/2058) - Add `ThatAre[Not]Sealed` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2059](https://togithub.com/fluentassertions/fluentassertions/pull/2059) - Add `ThatAre[Not]Interfaces` to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2057](https://togithub.com/fluentassertions/fluentassertions/pull/2057) - Add extensions for `OccurrenceConstraint` that reads more fluently by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2047](https://togithub.com/fluentassertions/fluentassertions/pull/2047) - Add `Imply()` to `BooleanAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2074](https://togithub.com/fluentassertions/fluentassertions/pull/2074) - Add `ThatAre[Not]ValueTypes` method to `TypeSelector.cs` by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2083](https://togithub.com/fluentassertions/fluentassertions/pull/2083) ##### Improvements - Order strings with ordinal comparison by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2075](https://togithub.com/fluentassertions/fluentassertions/pull/2075) - Improve performance of `IsTuple()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2079](https://togithub.com/fluentassertions/fluentassertions/pull/2079) - Optimize `IsRecord()` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2080](https://togithub.com/fluentassertions/fluentassertions/pull/2080) ##### Fixes - Nested `AssertionScope`s do not print inner scope reportables by [@​94sedighi](https://togithub.com/94sedighi) in [https://github.com/fluentassertions/fluentassertions/pull/2044](https://togithub.com/fluentassertions/fluentassertions/pull/2044) - Extend `ThatArePublicOrInternal` to also look at the setter of properties by [@​Ruijin92](https://togithub.com/Ruijin92) in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - Treat record structs as records by [@​salvois](https://togithub.com/salvois) in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) ##### Documentation - Document alternatives for collection order by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2063](https://togithub.com/fluentassertions/fluentassertions/pull/2063) - Document that `PathMap` is currently not supported by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2067](https://togithub.com/fluentassertions/fluentassertions/pull/2067) - Use langword instead of <c> for C# keywords by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2070](https://togithub.com/fluentassertions/fluentassertions/pull/2070) - Add missing exceptions to xml summaries by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2023](https://togithub.com/fluentassertions/fluentassertions/pull/2023) - Improve `Guard` helper by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2076](https://togithub.com/fluentassertions/fluentassertions/pull/2076) - Add issue templates and api review process by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2078](https://togithub.com/fluentassertions/fluentassertions/pull/2078) - Add `cSpell` to NUKE build pipeline by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2086](https://togithub.com/fluentassertions/fluentassertions/pull/2086) ##### Others - Enable CI unit tests on linux and mac by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2021](https://togithub.com/fluentassertions/fluentassertions/pull/2021) - update catch phrase url by [@​danielchalmers](https://togithub.com/danielchalmers) in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - Prepare approval tests for .NET 7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2024](https://togithub.com/fluentassertions/fluentassertions/pull/2024) - Use PolySharp to generate polyfill attributes by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2026](https://togithub.com/fluentassertions/fluentassertions/pull/2026) - New unit test to verify CompleteWithinAsync behaves correctly in an assertion scope by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2033](https://togithub.com/fluentassertions/fluentassertions/pull/2033) - Fix nuget config to be able to restore/build the project when having custom HTTP nuget sources by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2032](https://togithub.com/fluentassertions/fluentassertions/pull/2032) - Improve coverage on data assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2037](https://togithub.com/fluentassertions/fluentassertions/pull/2037) - Bump minimum SDK to 6.0.400 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2038](https://togithub.com/fluentassertions/fluentassertions/pull/2038) - Let `EquatableOfInt` implement `IComparable<T>` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2036](https://togithub.com/fluentassertions/fluentassertions/pull/2036) - New tests for better code coverage on collection assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/2035](https://togithub.com/fluentassertions/fluentassertions/pull/2035) - Comparable type assertions referential equality by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2046](https://togithub.com/fluentassertions/fluentassertions/pull/2046) - Use TheoryData by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2068](https://togithub.com/fluentassertions/fluentassertions/pull/2068) - Pattern combinators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2039](https://togithub.com/fluentassertions/fluentassertions/pull/2039) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2077](https://togithub.com/fluentassertions/fluentassertions/pull/2077) - Set process dotnet cli language to en-US by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2084](https://togithub.com/fluentassertions/fluentassertions/pull/2084) - Bump required .NET SDK to v7 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2087](https://togithub.com/fluentassertions/fluentassertions/pull/2087) - Optimize NUKE spell check by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2089](https://togithub.com/fluentassertions/fluentassertions/pull/2089) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2081](https://togithub.com/fluentassertions/fluentassertions/pull/2081) - Fix build breaking on non PR branches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2090](https://togithub.com/fluentassertions/fluentassertions/pull/2090) - Add process env variable `DOTNET_CLI_UI_LANGUAGE` also inside targets by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/2092](https://togithub.com/fluentassertions/fluentassertions/pull/2092) #### New Contributors - [@​danielchalmers](https://togithub.com/danielchalmers) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2025](https://togithub.com/fluentassertions/fluentassertions/pull/2025) - [@​jez9999](https://togithub.com/jez9999) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2028](https://togithub.com/fluentassertions/fluentassertions/pull/2028) - [@​94sedighi](https://togithub.com/94sedighi) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2054](https://togithub.com/fluentassertions/fluentassertions/pull/2054) - [@​Ruijin92](https://togithub.com/Ruijin92) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2082](https://togithub.com/fluentassertions/fluentassertions/pull/2082) - [@​salvois](https://togithub.com/salvois) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2009](https://togithub.com/fluentassertions/fluentassertions/pull/2009) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.8.0...6.9.0 ### [`v6.8.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.8.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0) <!-- Release notes generated using configuration in .github/release.yml at develop --> ##### What's Changed ##### New features - Extend collection assertions with `ContainInConsecutiveOrder` and `NotContainInConsecutiveOrder` by [@​StacyCash](https://togithub.com/StacyCash) in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - Added `NotCompleteWithinAsync` for Task assertions by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1967](https://togithub.com/fluentassertions/fluentassertions/pull/1967) - Added assertions for non-generic `TaskCompletionSource` by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1961](https://togithub.com/fluentassertions/fluentassertions/pull/1961) - Exposes the `IMonitor` object to extensions methods. by [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) ##### Improvements - Optimize `BeEquivalentTo` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1939](https://togithub.com/fluentassertions/fluentassertions/pull/1939) - Print commas at the end of the line by [@​ronaldkroon](https://togithub.com/ronaldkroon) in [https://github.com/fluentassertions/fluentassertions/pull/1945](https://togithub.com/fluentassertions/fluentassertions/pull/1945) - Avoid allocating sub-arrays in `ContainInOrder` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1960](https://togithub.com/fluentassertions/fluentassertions/pull/1960) - Extend `IObjectInfo` with info about `DeclaringType` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1950](https://togithub.com/fluentassertions/fluentassertions/pull/1950) - Prepare constructors of `AsyncFunctionAssertions` to make them protected in V7 by [@​lg2de](https://togithub.com/lg2de) in [https://github.com/fluentassertions/fluentassertions/pull/1972](https://togithub.com/fluentassertions/fluentassertions/pull/1972) - Calculate the difference between the subject and the expected nearby time by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2013](https://togithub.com/fluentassertions/fluentassertions/pull/2013) ##### Fixes - Filter dynamic methods from stack trace by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1943](https://togithub.com/fluentassertions/fluentassertions/pull/1943) - Make For/Excluding work with nested paths by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1953](https://togithub.com/fluentassertions/fluentassertions/pull/1953) - Use InvariantCulture when doing case-insensitive matches by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1985](https://togithub.com/fluentassertions/fluentassertions/pull/1985) - Global record equivalency settings were not taken into account by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1984](https://togithub.com/fluentassertions/fluentassertions/pull/1984) - Escape brackets in execution time failures by [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) ##### Documentation - More specifically clarify the intentions of `WithArgs` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1929](https://togithub.com/fluentassertions/fluentassertions/pull/1929) - Remove building link from the website by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1934](https://togithub.com/fluentassertions/fluentassertions/pull/1934) - Add `Enum.BeOneOf` to the docs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1958](https://togithub.com/fluentassertions/fluentassertions/pull/1958) - Document how to use `ModuleInitializer` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1966](https://togithub.com/fluentassertions/fluentassertions/pull/1966) - Fix a typo on the Assembly References documentation page by [@​asydikov](https://togithub.com/asydikov) in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - Update summary of `EquivalencyValidator` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - Improve error messages for accidental `Equals` usage by [@​nycdotnet](https://togithub.com/nycdotnet) in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) ##### Others - Upgrade to C# 10 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1935](https://togithub.com/fluentassertions/fluentassertions/pull/1935) - Use file scoped namespaces by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1936](https://togithub.com/fluentassertions/fluentassertions/pull/1936) - More use of pattern matching and lifted operators by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1937](https://togithub.com/fluentassertions/fluentassertions/pull/1937) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1962](https://togithub.com/fluentassertions/fluentassertions/pull/1962) - Make it possible for third-party libraries to access the underlying collection of instances of `ReadOnlyNonGenericCollectionWrapper` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1968](https://togithub.com/fluentassertions/fluentassertions/pull/1968) - Code cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1973](https://togithub.com/fluentassertions/fluentassertions/pull/1973) - Improve coverage for `CollectionMemberObjectInfo` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1983](https://togithub.com/fluentassertions/fluentassertions/pull/1983) - Deduplicate target frameworks by [@​0xced](https://togithub.com/0xced) in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - Removed netcoreapp2.0 framework check in formatting precision tests by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1976](https://togithub.com/fluentassertions/fluentassertions/pull/1976) - Rename `ShouldCompareMembersThisDeep` to `ShouldCompareNodesThisDeep` by [@​Wolgo](https://togithub.com/Wolgo) in [https://github.com/fluentassertions/fluentassertions/pull/1992](https://togithub.com/fluentassertions/fluentassertions/pull/1992) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1996](https://togithub.com/fluentassertions/fluentassertions/pull/1996) - Cleanups by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1998](https://togithub.com/fluentassertions/fluentassertions/pull/1998) - Update GitHub actions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2007](https://togithub.com/fluentassertions/fluentassertions/pull/2007) - Fix the PR link in releases.md by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/2014](https://togithub.com/fluentassertions/fluentassertions/pull/2014) - Prepare 6.8.0 by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/2020](https://togithub.com/fluentassertions/fluentassertions/pull/2020) ##### New Contributors - [@​StacyCash](https://togithub.com/StacyCash) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1963](https://togithub.com/fluentassertions/fluentassertions/pull/1963) - [@​asydikov](https://togithub.com/asydikov) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1970](https://togithub.com/fluentassertions/fluentassertions/pull/1970) - [@​0xced](https://togithub.com/0xced) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1980](https://togithub.com/fluentassertions/fluentassertions/pull/1980) - [@​Wolgo](https://togithub.com/Wolgo) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1991](https://togithub.com/fluentassertions/fluentassertions/pull/1991) - [@​Briaoeuidhtns](https://togithub.com/Briaoeuidhtns) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1994](https://togithub.com/fluentassertions/fluentassertions/pull/1994) - [@​nycdotnet](https://togithub.com/nycdotnet) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2006](https://togithub.com/fluentassertions/fluentassertions/pull/2006) - [@​A-Kjeldgaard](https://togithub.com/A-Kjeldgaard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/2010](https://togithub.com/fluentassertions/fluentassertions/pull/2010) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.7.0...6.8.0 ### [`v6.7.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.7.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Add `BeDefined` and `NotBeDefined` to `EnumAssertions` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1888](https://togithub.com/fluentassertions/fluentassertions/pull/1888) - Restore basic assertions for collections in `System.Data` by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1812](https://togithub.com/fluentassertions/fluentassertions/pull/1812) - Add the ability to exclude non-browsable members from equivalency tests by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1827](https://togithub.com/fluentassertions/fluentassertions/pull/1827) - Add `For`/`Exclude` to allow exclusion of members inside a collection by [@​whymatter](https://togithub.com/whymatter) in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - Add overload to `HaveElement()` to be able to assert on occurrences for `XDocument` and `XElement` by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1880](https://togithub.com/fluentassertions/fluentassertions/pull/1880) ##### Fixes - Do not add all arguments of type `T` to the matching events, if one is found by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1920](https://togithub.com/fluentassertions/fluentassertions/pull/1920) ##### Documentation - Update documentation for event monitoring at .netstandard2.0 by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1879](https://togithub.com/fluentassertions/fluentassertions/pull/1879) - Update docxml comments on `BeInRange` by [@​andrewlock](https://togithub.com/andrewlock) in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - Add ContainSingle.Where to collection examples by [@​timabell](https://togithub.com/timabell) in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) ##### Others - More code coverage by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - Code style fixes by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1881](https://togithub.com/fluentassertions/fluentassertions/pull/1881) - Add missing tests (according to coveralls) for Data\* objects by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1882](https://togithub.com/fluentassertions/fluentassertions/pull/1882) - Fix small typo in `AssertionScope` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1890](https://togithub.com/fluentassertions/fluentassertions/pull/1890) - Add missing tests for matching `null` with a wildcard by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1889](https://togithub.com/fluentassertions/fluentassertions/pull/1889) - More testing of guarding methods by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1891](https://togithub.com/fluentassertions/fluentassertions/pull/1891) - Fix release notes by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1892](https://togithub.com/fluentassertions/fluentassertions/pull/1892) - Structure assertions with nested classes instead of regions (Part 1) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1898](https://togithub.com/fluentassertions/fluentassertions/pull/1898) - Add missing `null` check tests in Data\*Specs by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1899](https://togithub.com/fluentassertions/fluentassertions/pull/1899) - Structure assertions with nested classes instead of regions (Part 2) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1900](https://togithub.com/fluentassertions/fluentassertions/pull/1900) - Update nugets by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1901](https://togithub.com/fluentassertions/fluentassertions/pull/1901) - Cleanup README.md by [@​robvanuden](https://togithub.com/robvanuden) in [https://github.com/fluentassertions/fluentassertions/pull/1905](https://togithub.com/fluentassertions/fluentassertions/pull/1905) - Structure assertions with nested classes instead of regions (Part 3) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1903](https://togithub.com/fluentassertions/fluentassertions/pull/1903) - Try to stabilize UIFact tests by running them sequentially by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1902](https://togithub.com/fluentassertions/fluentassertions/pull/1902) - Structure assertions with nested classes instead of regions (Part 4) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1908](https://togithub.com/fluentassertions/fluentassertions/pull/1908) - Structure assertions with nested classes instead of regions (Part 5) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1909](https://togithub.com/fluentassertions/fluentassertions/pull/1909) - Fix coveralls badge by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1906](https://togithub.com/fluentassertions/fluentassertions/pull/1906) - Fix codestyle issues by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1912](https://togithub.com/fluentassertions/fluentassertions/pull/1912) - Structure assertions with nested classes instead of regions (Part 6) by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1911](https://togithub.com/fluentassertions/fluentassertions/pull/1911) - Fix the failure message for occurrence regex by [@​ITaluone](https://togithub.com/ITaluone) in [https://github.com/fluentassertions/fluentassertions/pull/1913](https://togithub.com/fluentassertions/fluentassertions/pull/1913) #### New Contributors - [@​ITaluone](https://togithub.com/ITaluone) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1871](https://togithub.com/fluentassertions/fluentassertions/pull/1871) - [@​whymatter](https://togithub.com/whymatter) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1782](https://togithub.com/fluentassertions/fluentassertions/pull/1782) - [@​andrewlock](https://togithub.com/andrewlock) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1907](https://togithub.com/fluentassertions/fluentassertions/pull/1907) - [@​timabell](https://togithub.com/timabell) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1917](https://togithub.com/fluentassertions/fluentassertions/pull/1917) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.6.0...6.7.0 ### [`v6.6.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.6.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### New features - Adding support for .NET6 `DateOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1844](https://togithub.com/fluentassertions/fluentassertions/pull/1844) - Adding support for .NET6 `TimeOnly` struct by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1848](https://togithub.com/fluentassertions/fluentassertions/pull/1848) - Extend `NullableBooleanAssertions` by `NotBe()` by [@​mu88](https://togithub.com/mu88) in [https://github.com/fluentassertions/fluentassertions/pull/1865](https://togithub.com/fluentassertions/fluentassertions/pull/1865) - Added a new overload to `MatchRegex()` to assert on the number of regex matches by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) ##### Improvements - Annotated `[Not]MatchRegex` with `[StringSyntax("Regex")]` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1816](https://togithub.com/fluentassertions/fluentassertions/pull/1816) - Determine caller name for `EnumAssertions.Be` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1835](https://togithub.com/fluentassertions/fluentassertions/pull/1835) - Add difference to numeric assertion failure messages by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1859](https://togithub.com/fluentassertions/fluentassertions/pull/1859) - Improve difference calculation of overflowing integrals by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1875](https://togithub.com/fluentassertions/fluentassertions/pull/1875) ##### Fixes - Ensure `ExcludingMissingMembers` doesn't undo usage of `WithMapping` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1838](https://togithub.com/fluentassertions/fluentassertions/pull/1838) - Better support for NaN in numeric assertions on floats and doubles by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1822](https://togithub.com/fluentassertions/fluentassertions/pull/1822) - `WithMapping` now works in equivalency assertions on collections by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1858](https://togithub.com/fluentassertions/fluentassertions/pull/1858) - Better handling of NaN in nullable numeric assertions by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1867](https://togithub.com/fluentassertions/fluentassertions/pull/1867) ##### Documentation - Fix typo in comment for `ComparingRecordsByMembers` by [@​kijanawoodard](https://togithub.com/kijanawoodard) in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - Add release notes template by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1818](https://togithub.com/fluentassertions/fluentassertions/pull/1818) - Update migration tip on how to replace `AllItemsAreInstancesOfType` by [@​IT-VBFK](https://togithub.com/IT-VBFK) in [https://github.com/fluentassertions/fluentassertions/pull/1873](https://togithub.com/fluentassertions/fluentassertions/pull/1873) ##### Others - Add code coverage reporting by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1815](https://togithub.com/fluentassertions/fluentassertions/pull/1815) - Fix uninvoked actions in tests by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1817](https://togithub.com/fluentassertions/fluentassertions/pull/1817) - Update nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1819](https://togithub.com/fluentassertions/fluentassertions/pull/1819) - More Code Coverage by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1820](https://togithub.com/fluentassertions/fluentassertions/pull/1820) - Reordered the numeric tests and replaced regions with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1821](https://togithub.com/fluentassertions/fluentassertions/pull/1821) - Fill gaps in System.Data unit testing by [@​logiclrd](https://togithub.com/logiclrd) in [https://github.com/fluentassertions/fluentassertions/pull/1814](https://togithub.com/fluentassertions/fluentassertions/pull/1814) - Add net6.0 target by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1831](https://togithub.com/fluentassertions/fluentassertions/pull/1831) - Target PRs at develop instead of master by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1836](https://togithub.com/fluentassertions/fluentassertions/pull/1836) - Adds test for string collection equivalency by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1843](https://togithub.com/fluentassertions/fluentassertions/pull/1843) - Replaced regions in numeric specs with nested classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1837](https://togithub.com/fluentassertions/fluentassertions/pull/1837) - Rename constructor parameter for `NullableDateOnlyAssertions` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1846](https://togithub.com/fluentassertions/fluentassertions/pull/1846) - Improve code coverage of fake should overloads by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1847](https://togithub.com/fluentassertions/fluentassertions/pull/1847) - Improve code coverage and fix some test mutations by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1839](https://togithub.com/fluentassertions/fluentassertions/pull/1839) - Removes unnecessary code by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1849](https://togithub.com/fluentassertions/fluentassertions/pull/1849) - `A_NaN_is_never_in_range_of_two_doubles` was exercising `float`s by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1852](https://togithub.com/fluentassertions/fluentassertions/pull/1852) - Split `StringAssertionSpecs` file by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1855](https://togithub.com/fluentassertions/fluentassertions/pull/1855) - Update internal test and build nuget packages by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1866](https://togithub.com/fluentassertions/fluentassertions/pull/1866) - Add test coverage for `OccurrenceConstraint` by [@​eNeRGy164](https://togithub.com/eNeRGy164) in [https://github.com/fluentassertions/fluentassertions/pull/1856](https://togithub.com/fluentassertions/fluentassertions/pull/1856) - Fix Some Typos in UpgradingToV6.md by [@​say25](https://togithub.com/say25) in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - Cleanups in Specs by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1853](https://togithub.com/fluentassertions/fluentassertions/pull/1853) #### New Contributors - [@​kijanawoodard](https://togithub.com/kijanawoodard) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1809](https://togithub.com/fluentassertions/fluentassertions/pull/1809) - [@​say25](https://togithub.com/say25) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1870](https://togithub.com/fluentassertions/fluentassertions/pull/1870) - [@​IT-VBFK](https://togithub.com/IT-VBFK) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1869](https://togithub.com/fluentassertions/fluentassertions/pull/1869) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.1...6.6.0 ### [`v6.5.1`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.1) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1) #### What's Changed - Maintenance on release notes, Github content files, etc by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1800](https://togithub.com/fluentassertions/fluentassertions/pull/1800) - Make the site work with Ruby 3 and update catchphrase and sponsors by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1801](https://togithub.com/fluentassertions/fluentassertions/pull/1801) - Fix ordering collections by the identity function by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1802](https://togithub.com/fluentassertions/fluentassertions/pull/1802) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.5.0...6.5.1 Public release notes: https://fluentassertions.com/releases/[#​651](https://togithub.com/fluentassertions/fluentassertions/issues/651) ### [`v6.5.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.5.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0) #### What's Changed - Allow mapping properties and/or fields with different names by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1742](https://togithub.com/fluentassertions/fluentassertions/pull/1742) - Moved the equivalency specs to a separate test project and split them into separate classes by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1789](https://togithub.com/fluentassertions/fluentassertions/pull/1789) - Improved docs on `BeLowerCased` and `BeUpperCased` for mixed strings by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1792](https://togithub.com/fluentassertions/fluentassertions/pull/1792) - Fixed a continuation issue in the fluent assertion API by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1791](https://togithub.com/fluentassertions/fluentassertions/pull/1791) - Properly recognized non-class types as internal when using `HaveAccessModifier` assertion by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1793](https://togithub.com/fluentassertions/fluentassertions/pull/1793) - Caller identification does not handle all arguments using `new` by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1794](https://togithub.com/fluentassertions/fluentassertions/pull/1794) - Added `AllSatisfy` by [@​kmusick](https://togithub.com/kmusick) in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) - Fix and improve tracing for nested `AssertionScope`s by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1797](https://togithub.com/fluentassertions/fluentassertions/pull/1797) #### New Contributors - [@​kmusick](https://togithub.com/kmusick) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1790](https://togithub.com/fluentassertions/fluentassertions/pull/1790) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.4.0...6.5.0 ### [`v6.4.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.4.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0) #### What's Changed - Adds `ThatAreStatic` and `ThatAreNotStatic` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1740](https://togithub.com/fluentassertions/fluentassertions/pull/1740) - Trailing slash results in 404 page by [@​MEmanuelsson](https://togithub.com/MEmanuelsson) in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - Introduce assertions for `StatusCode` of `HttpResponseMessage` by [@​mu88](https://togithub.com/mu88) for [@​swisspost](https://togithub.com/swisspost) in [https://github.com/fluentassertions/fluentassertions/pull/1737](https://togithub.com/fluentassertions/fluentassertions/pull/1737) - `ContainItemsAssignableTo` now expects at least one item assignable to `T` by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - Variable name is not captured after await assertion by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1770](https://togithub.com/fluentassertions/fluentassertions/pull/1770) - Fix typos by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1774](https://togithub.com/fluentassertions/fluentassertions/pull/1774) - Non-generic overload for `WithInnerExceptionExactly` by [@​karenfarnes](https://togithub.com/karenfarnes) in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - Fix determining caller identity for NET Native by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1776](https://togithub.com/fluentassertions/fluentassertions/pull/1776) - Adjust Identifier properties by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1777](https://togithub.com/fluentassertions/fluentassertions/pull/1777) - Relax `When_the_execution_time_of_an_async_action_is_less_than_a_limit_it_should_not_throw` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1778](https://togithub.com/fluentassertions/fluentassertions/pull/1778) - Bump Nuke/GitVersion, improve PR numbering, simplify Yaml script by [@​dennisdoomen](https://togithub.com/dennisdoomen) in [https://github.com/fluentassertions/fluentassertions/pull/1775](https://togithub.com/fluentassertions/fluentassertions/pull/1775) - `OccurredEvent` ordering on monitored object is now done via thread-safe counter by [@​MullerWasHere](https://togithub.com/MullerWasHere) in [https://github.com/fluentassertions/fluentassertions/pull/1773](https://togithub.com/fluentassertions/fluentassertions/pull/1773) - override Identifier for `BufferedStream` by [@​amosonn](https://togithub.com/amosonn) in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) - Fix `TryGetValue` for dictionary like enumerables by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1786](https://togithub.com/fluentassertions/fluentassertions/pull/1786) - Optimize build times by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1787](https://togithub.com/fluentassertions/fluentassertions/pull/1787) - Guard against unformattable caller name by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1788](https://togithub.com/fluentassertions/fluentassertions/pull/1788) #### New Contributors - [@​MEmanuelsson](https://togithub.com/MEmanuelsson) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1767](https://togithub.com/fluentassertions/fluentassertions/pull/1767) - [@​MullerWasHere](https://togithub.com/MullerWasHere) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1765](https://togithub.com/fluentassertions/fluentassertions/pull/1765) - [@​karenfarnes](https://togithub.com/karenfarnes) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1769](https://togithub.com/fluentassertions/fluentassertions/pull/1769) - [@​amosonn](https://togithub.com/amosonn) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1772](https://togithub.com/fluentassertions/fluentassertions/pull/1772) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.3.0...6.4.0 **Public release notes**: https://fluentassertions.com/releases/[#​640](https://togithub.com/fluentassertions/fluentassertions/issues/640) ### [`v6.3.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.3.0) [Compare Source](https://togithub.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0) #### What's Changed - Fix building on linux/WSL by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1723](https://togithub.com/fluentassertions/fluentassertions/pull/1723) - Test that `ComparingByMembers` clears `equalityStrategyCache` by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1724](https://togithub.com/fluentassertions/fluentassertions/pull/1724) - Adding `ThatAreAsync()` and `ThatAreNotAsync()` to `MethodInfoSelector` by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1725](https://togithub.com/fluentassertions/fluentassertions/pull/1725) - Return Task for async/non-async test method by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1736](https://togithub.com/fluentassertions/fluentassertions/pull/1736) - Fix contributing guidelines by [@​wgnf](https://togithub.com/wgnf) in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - Replace non-generic collection examples with generic collections in documentation by [@​jonathonchase](https://togithub.com/jonathonchase) in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - Adds ThatAre(Not)Virtual to MethodInfoSelector by [@​chvollm](https://togithub.com/chvollm) in [https://github.com/fluentassertions/fluentassertions/pull/1744](https://togithub.com/fluentassertions/fluentassertions/pull/1744) - Prevent multiple enumeration in `ContainSingle()` by [@​bert2](https://togithub.com/bert2) in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - Change HaveCount assertion message order to state number before dumpi… by [@​iliashkolyar](https://togithub.com/iliashkolyar) in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) - Throw exception when calling object.Equals on Assertions class by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1764](https://togithub.com/fluentassertions/fluentassertions/pull/1764) - Take sync work into account in CompleteWithinAsync by [@​jnyrup](https://togithub.com/jnyrup) in [https://github.com/fluentassertions/fluentassertions/pull/1762](https://togithub.com/fluentassertions/fluentassertions/pull/1762) #### New Contributors - [@​wgnf](https://togithub.com/wgnf) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1739](https://togithub.com/fluentassertions/fluentassertions/pull/1739) - [@​jonathonchase](https://togithub.com/jonathonchase) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1745](https://togithub.com/fluentassertions/fluentassertions/pull/1745) - [@​bert2](https://togithub.com/bert2) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1753](https://togithub.com/fluentassertions/fluentassertions/pull/1753) - [@​iliashkolyar](https://togithub.com/iliashkolyar) made their first contribution in [https://github.com/fluentassertions/fluentassertions/pull/1760](https://togithub.com/fluentassertions/fluentassertions/pull/1760) **Full Changelog**: https://github.com/fluentassertions/fluentassertions/compare/6.2.0...6.3.0 ### [`v6.2.0`](https://togithub.com/fluentassertions/fluentassertions/releases/tag/6.2.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cythral/brighid-discord-adapter). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuNDguMiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Talen Fisher <talen.fisher@cythral.com>
In #1932 I noticed that we generate the equivalency summary even when a test does not fail.
That didn't look right to me.
Benchmark 1: Comparing two simple objects
develop
373a6ad
6c5db11
72c2e25
a50e07a
8eeb20c
Benchmark 2: Comparing lists of complex objects
BeEquivalentToWithDeeplyNestedStructures
with these modificationsdevelop
8eeb20c -
RequiresConversion
55c79b3
Node.GetHashCode
55c79b3
Node.Equals
55c79b3 Cache
PathName